package com.sky.cqculture.Mapper;

import com.sky.cqculture.pojo.Product;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

@Mapper
public interface ProductMapper {
    
    /**
     * 查询所有商品
     * @return 商品列表
     */
    List<Product> findAll();
    
    /**
     * 根据条件查询商品列表（不包括分页）
     * @param categoryId 分类ID
     * @param sortType 排序类型
     * @return 商品列表
     */
    List<Product> findByCondition(@Param("categoryId") Integer categoryId, 
                                 @Param("sortType") String sortType);
    
    /**
     * 根据ID查询商品
     * @param id 商品ID
     * @return 商品对象
     */
    Product findById(Integer id);
    
    /**
     * 查询爆款商品（按销量排序）
     * @param limit 查询数量
     * @return 商品列表
     */
    List<Product> findPopularProducts(Integer limit);
    
    /**
     * 分页查询商品
     * @param params 查询参数（包含分类ID、排序方式、页码、每页数量）
     * @return 商品列表
     */
    List<Product> findByPage(Map<String, Object> params);
    
    /**
     * 查询商品总数
     * @param categoryId 分类ID（可为空）
     * @return 商品总数
     */
    Integer countProducts(Integer categoryId);
}